// eslint-disable-next-line
/**
 * fanjiao add
 * 主要用于组织管理模块、用户管理等管理员角色使用模块的相关接口请求
 *
 */
import { axios } from '@/utils/request'
import $notification from 'ant-design-vue/es/notification'
const api = {
  // 根据父节点查询组织树
  orgTree: '/admin/pmOrg/tree',
  // 组织管理
  org: '/admin/pmOrg',
  // 用户管理
  getuserpage: '/admin/pmUser/page',
  userInfo: '/admin/pmUser',
  // 角色管理
  getrole: '/admin/pmRole/page',
  role: '/admin/pmRole',
  // 菜单管理
  getmenu: '/admin/pmMenu/page',

  // 上传头像/缩略图
  upload: '/file/upload',
  // 加密分块上传
  uploadFilePart: '/file/appendUploadFile',

  gatelog: '/admin/gateLog/page',
  exportgatelog: '/admin/gateLog/export'

}
export default api
/**
 * 公共方法
 */
export function query (url, method, parameter, data) {
  return axios({
    url: url,
    method: method,
    params: parameter,
    data: data
  }).then(res => {
    if (res.status === 200) {
      return res
    } else {
      $notification['error']({
        message: res.message,
        duration: 4
      })
    }
  }).catch(e =>
    $notification['error']({
      message: e.message,
      duration: 4
    })
  )
}
export function method (actionParam) {
  return axios({
    url: actionParam.url,
    method: actionParam.action,
    params: actionParam.parameter,
    data: actionParam.data
  }).then(res => {
    if (res.status === 200) {
      if (res.rel === false) {
        $notification['error']({
          message: res.message,
          duration: 4
        })
      } else {
        $notification['success']({
          message: actionParam.message,
          duration: 2
        })
      }
    } else {
      $notification['error']({
        message: res.message,
        duration: 4
      })
    }
  }).catch(e =>
    $notification['error']({
      message: e.message,
      duration: 4
    })
  )
}
export function get (parameter) {
  return axios({
    url: api.test,
    method: 'get',
    params: parameter
  })
}
/**
 * test
 */
export function add (parameter) {
  return axios({
    url: api.test.replace('api', 'air-generator'),
    method: 'post',
    params: parameter
  })
}
// 下载
export function download (parameter) {
  return axios({
    url: parameter.url,
    method: parameter.action,
    params: parameter.parameter,
    data: parameter.data,
    responseType: 'blob'
  })
}
/**
 * 获取用户列表（分页）
 */
export function getUserPage (parameter) {
  return axios({
    url: api.getuserpage,
    method: 'get',
    params: parameter
  })
}
/**
 * 根据用户id获取用户信息
 */
export function getuser (parameter) {
  return axios({
    url: api.user + '/' + parameter,
    method: 'get'
  })
}
/**
 * 获取树结构组织信息
 */
export function getOrgTree (parameter) {
  return axios({
    url: api.orgTree,
    method: 'get',
    params: parameter
  })
}
/**
 * 根据用户id获取用户信息
 */
export function getuserInfo (parameter) {
  return axios({
    url: api.userInfo + '/' + parameter,
    method: 'get'
  })
}
/**
 * 新增用户信息
 */
export function adduser (parameter, others) {
  return axios({
    url: api.userInfo,
    method: 'post',
    data: parameter,
    params: others
  })
}
/**
 * 修改用户信息
 */
export function updateuser (parameter, others) {
  return axios({
    url: api.userInfo,
    method: 'put',
    data: parameter,
    params: others
  })
}
/**
 * 删除用户信息
 */
export function deluser (parameter) {
  return axios({
    url: api.userInfo + '/' + parameter,
    method: 'delete'
  })
}
/**
 * 密码重置
 */
export function resetPsd (parameter) {
  return axios({
    url: api.userInfo,
    method: 'delete',
    params: parameter
  })
}
/**
 * 新增组织信息
 */
export function addorg (parameter) {
  return axios({
    url: api.org,
    method: 'post',
    data: parameter
  })
}
/**
 * 修改组织信息
 */
export function updateorg (parameter) {
  return axios({
    url: api.org,
    method: 'put',
    data: parameter
  })
}
/**
 * 删除组织信息
 */
export function delorg (parameter) {
  return axios({
    url: api.org + '/' + parameter,
    method: 'delete'
  })
}
/**
 * 获取角色列表
 */
export function getRoleList (parameter) {
  return axios({
    url: api.getrole,
    method: 'get',
    params: parameter
  })
}
/**
 * 新增角色
 */
export function addRole (parameter) {
  return axios({
    url: api.role,
    method: 'post',
    data: parameter
  })
}
/**
 * 修改角色
 */
export function updateRole (parameter) {
  return axios({
    url: api.role,
    method: 'put',
    data: parameter
  })
}
/**
 * 删除角色
 */
export function delRole (parameter) {
  return axios({
    url: api.role + '/' + parameter,
    method: 'delete'
  })
}
/**
 * 禁用角色
 */
export function disabledRole (parameter) {
  return axios({
    url: api.role,
    method: 'put',
    params: parameter
  })
}
/**
 * 文件上传
 */
export function uploadFile (parameter) {
  return axios({
    baseURL: '/fdfs',
    url: api.upload,
    method: 'post',
    data: parameter,
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}
/**
 * 菜单查询（分页）
 */
export function getMenuList (parameter) {
  return axios({
    url: api.getmenu,
    method: 'get',
    params: parameter
  })
}
/**
 * 根据角色id获取用户
 */
export function getRoleUser (parameter) {
  return axios({
    url: api.roleuser,
    method: 'get',
    params: parameter
  })
}
/**
 * 保存角色对应用户
 */
export function saveRoleUser (parameter) {
  return axios({
    url: api.roleuser,
    method: 'put',
    data: parameter
  })
}
/**
 * 获取网关日志
 */
export function getGateLog (parameter) {
  return axios({
    url: api.gatelog,
    method: 'get',
    params: parameter
  })
}
/**
 * 导出网关日志
 */
export function exportGateLog (parameter) {
  return axios({
    url: api.exportgatelog,
    method: 'get',
    params: parameter,
    responseType: 'blob'
  })
}
/**
 * 获取树结构组织信息
 * @param {Number} level 层级
 * @param {String} userOrgCode 用户组织编码
 */
export function getOrgTreeComponent (parameter) {
  return axios({
    url: api.orgTreeComponent,
    method: 'get',
    params: parameter
  })
}
